package com.ea.report.service;

import com.ea.common.report.pojo.vo.*;

import java.util.Date;
import java.util.List;

public interface ReportService {
    UserDetailVo getUserReportVoByUserId(Long userId);

    Long uploadVideo(String md5, Long userId, Long companyId, Integer type);

    void uploadPhoto(String md5, Long userId, String name);

    void uploadPhotoTemp(String md5, Long userId, String name);

    ReportSimpleInfoListVo getReportSimpleInfoVoListByUserId(Long userId, String name, String companyName, String deptName, String positionName, List<Integer> warningTypeList, Integer page, Integer pageSize);

    ReportSimpleInfoListVo getReportList(List<Long> companyIdList, List<Long> deptIdList, List<Long> positionIdList, List<Long> userIdList, List<Integer> warningTypeList, List<Integer> statusList, String name, Date postStartDate, Date postEndDate, Date receiveStartDate, Date receiveEndDate, Date emoAnalyStartDate, Date emoAnalyEndDate, Date heartRateStartDate, Date heartRateEndDate, Integer page, Integer pageSize);

    ReportDetailInfoVo getReportDetail(Long reportId);

    String getCompanyIdByReportId(Long reportId);

    GetWarningInfoVo getWarningInfoVo(List<Long> companyIdList, List<Long> deptIdList, List<Long> positionIdList, List<Long> propertiesIdList, String name, List<Integer> warningTypeList, Integer page, Integer pageSize);

    StatsReportVo getStatsReport(List<Long> companyIdList, List<Long> deptIdList, Integer totalCount, String startDate, String endDate);

    DashboardVo getDashboardVo(List<Long> companyIdList, List<Long> deptIdList,
                               Integer totalCount,
                               Integer totalCountFemale,
                               Integer totalCountMale,String startDate, String endDate);

    GetPropertiesListVo getPropertiesList();

    void deleteUserFace(Long userId);

    void updateUserInfo(Long userId, Long companyId);

    ReportDetailInfoVo getReportInfoByMd5(Long userId,String md5);

}
